package de.umr.fb12.vs.os;

class IdleSched implements SchedClass {
	Task idle_task;

	IdleSched(Task idle_task) {
		this.idle_task = idle_task;
	}

	@Override
	public void enqueue_task(Task curr, Task enq) {
		throw new UnsupportedOperationException();
	}

	@Override
	public void dequeue_task(Task curr, Task deq) {
		throw new UnsupportedOperationException();
	}

	@Override
	public void yield_task(Task curr, Task t) {
		throw new UnsupportedOperationException();

	}

	@Override
	public Task pick_next_task() {
		return idle_task;
	}

	@Override
	public void put_prev_task(Task prev) {
		if (prev != idle_task)
			throw new IllegalArgumentException();
	}

	@Override
	public void task_tick(Task curr) {
	}

	@Override
	public void task_new(Task curr, Task newtsk) {
		throw new UnsupportedOperationException();

	}

}
